home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / livecd.squashfs / usr / lib / python2.4 / test / test_parser.pyc (.txt) < prev    next >
Python Compiled Bytecode  |  2005-10-18  |  11KB  |  218 lines

  1. # Source Generated with Decompyle++
  2. # File: in.pyc (Python 2.4)
  3.  
  4. import parser
  5. import unittest
  6. from test import test_support
  7.  
  8. class RoundtripLegalSyntaxTestCase(unittest.TestCase):
  9.     
  10.     def roundtrip(self, f, s):
  11.         st1 = f(s)
  12.         t = st1.totuple()
  13.         
  14.         try:
  15.             st2 = parser.sequence2st(t)
  16.         except parser.ParserError:
  17.             why = None
  18.             self.fail('could not roundtrip %r: %s' % (s, why))
  19.  
  20.         self.assertEquals(t, st2.totuple(), 'could not re-generate syntax tree')
  21.  
  22.     
  23.     def check_expr(self, s):
  24.         self.roundtrip(parser.expr, s)
  25.  
  26.     
  27.     def check_suite(self, s):
  28.         self.roundtrip(parser.suite, s)
  29.  
  30.     
  31.     def test_yield_statement(self):
  32.         self.check_suite('def f(): yield 1')
  33.         self.check_suite('def f(): return; yield 1')
  34.         self.check_suite('def f(): yield 1; return')
  35.         self.check_suite('def f():\n    for x in range(30):\n        yield x\n')
  36.  
  37.     
  38.     def test_expressions(self):
  39.         self.check_expr('foo(1)')
  40.         self.check_expr('[1, 2, 3]')
  41.         self.check_expr('[x**3 for x in range(20)]')
  42.         self.check_expr('[x**3 for x in range(20) if x % 3]')
  43.         self.check_expr('foo(*args)')
  44.         self.check_expr('foo(*args, **kw)')
  45.         self.check_expr('foo(**kw)')
  46.         self.check_expr('foo(key=value)')
  47.         self.check_expr('foo(key=value, *args)')
  48.         self.check_expr('foo(key=value, *args, **kw)')
  49.         self.check_expr('foo(key=value, **kw)')
  50.         self.check_expr('foo(a, b, c, *args)')
  51.         self.check_expr('foo(a, b, c, *args, **kw)')
  52.         self.check_expr('foo(a, b, c, **kw)')
  53.         self.check_expr('foo + bar')
  54.         self.check_expr('foo - bar')
  55.         self.check_expr('foo * bar')
  56.         self.check_expr('foo / bar')
  57.         self.check_expr('foo // bar')
  58.         self.check_expr('lambda: 0')
  59.         self.check_expr('lambda x: 0')
  60.         self.check_expr('lambda *y: 0')
  61.         self.check_expr('lambda *y, **z: 0')
  62.         self.check_expr('lambda **z: 0')
  63.         self.check_expr('lambda x, y: 0')
  64.         self.check_expr('lambda foo=bar: 0')
  65.         self.check_expr('lambda foo=bar, spaz=nifty+spit: 0')
  66.         self.check_expr('lambda foo=bar, **z: 0')
  67.         self.check_expr('lambda foo=bar, blaz=blat+2, **z: 0')
  68.         self.check_expr('lambda foo=bar, blaz=blat+2, *y, **z: 0')
  69.         self.check_expr('lambda x, *y, **z: 0')
  70.         self.check_expr('(x for x in range(10))')
  71.         self.check_expr('foo(x for x in range(10))')
  72.  
  73.     
  74.     def test_print(self):
  75.         self.check_suite('print')
  76.         self.check_suite('print 1')
  77.         self.check_suite('print 1,')
  78.         self.check_suite('print >>fp')
  79.         self.check_suite('print >>fp, 1')
  80.         self.check_suite('print >>fp, 1,')
  81.  
  82.     
  83.     def test_simple_expression(self):
  84.         self.check_suite('a')
  85.  
  86.     
  87.     def test_simple_assignments(self):
  88.         self.check_suite('a = b')
  89.         self.check_suite('a = b = c = d = e')
  90.  
  91.     
  92.     def test_simple_augmented_assignments(self):
  93.         self.check_suite('a += b')
  94.         self.check_suite('a -= b')
  95.         self.check_suite('a *= b')
  96.         self.check_suite('a /= b')
  97.         self.check_suite('a //= b')
  98.         self.check_suite('a %= b')
  99.         self.check_suite('a &= b')
  100.         self.check_suite('a |= b')
  101.         self.check_suite('a ^= b')
  102.         self.check_suite('a <<= b')
  103.         self.check_suite('a >>= b')
  104.         self.check_suite('a **= b')
  105.  
  106.     
  107.     def test_function_defs(self):
  108.         self.check_suite('def f(): pass')
  109.         self.check_suite('def f(*args): pass')
  110.         self.check_suite('def f(*args, **kw): pass')
  111.         self.check_suite('def f(**kw): pass')
  112.         self.check_suite('def f(foo=bar): pass')
  113.         self.check_suite('def f(foo=bar, *args): pass')
  114.         self.check_suite('def f(foo=bar, *args, **kw): pass')
  115.         self.check_suite('def f(foo=bar, **kw): pass')
  116.         self.check_suite('def f(a, b): pass')
  117.         self.check_suite('def f(a, b, *args): pass')
  118.         self.check_suite('def f(a, b, *args, **kw): pass')
  119.         self.check_suite('def f(a, b, **kw): pass')
  120.         self.check_suite('def f(a, b, foo=bar): pass')
  121.         self.check_suite('def f(a, b, foo=bar, *args): pass')
  122.         self.check_suite('def f(a, b, foo=bar, *args, **kw): pass')
  123.         self.check_suite('def f(a, b, foo=bar, **kw): pass')
  124.         self.check_suite('@staticmethod\ndef f(): pass')
  125.         self.check_suite('@staticmethod\n@funcattrs(x, y)\ndef f(): pass')
  126.         self.check_suite('@funcattrs()\ndef f(): pass')
  127.  
  128.     
  129.     def test_import_from_statement(self):
  130.         self.check_suite('from sys.path import *')
  131.         self.check_suite('from sys.path import dirname')
  132.         self.check_suite('from sys.path import (dirname)')
  133.         self.check_suite('from sys.path import (dirname,)')
  134.         self.check_suite('from sys.path import dirname as my_dirname')
  135.         self.check_suite('from sys.path import (dirname as my_dirname)')
  136.         self.check_suite('from sys.path import (dirname as my_dirname,)')
  137.         self.check_suite('from sys.path import dirname, basename')
  138.         self.check_suite('from sys.path import (dirname, basename)')
  139.         self.check_suite('from sys.path import (dirname, basename,)')
  140.         self.check_suite('from sys.path import dirname as my_dirname, basename')
  141.         self.check_suite('from sys.path import (dirname as my_dirname, basename)')
  142.         self.check_suite('from sys.path import (dirname as my_dirname, basename,)')
  143.         self.check_suite('from sys.path import dirname, basename as my_basename')
  144.         self.check_suite('from sys.path import (dirname, basename as my_basename)')
  145.         self.check_suite('from sys.path import (dirname, basename as my_basename,)')
  146.  
  147.     
  148.     def test_basic_import_statement(self):
  149.         self.check_suite('import sys')
  150.         self.check_suite('import sys as system')
  151.         self.check_suite('import sys, math')
  152.         self.check_suite('import sys as system, math')
  153.         self.check_suite('import sys, math as my_math')
  154.  
  155.     
  156.     def test_pep263(self):
  157.         self.check_suite('# -*- coding: iso-8859-1 -*-\npass\n')
  158.  
  159.     
  160.     def test_assert(self):
  161.         self.check_suite('assert alo < ahi and blo < bhi\n')
  162.  
  163.  
  164.  
  165. class IllegalSyntaxTestCase(unittest.TestCase):
  166.     
  167.     def check_bad_tree(self, tree, label):
  168.         
  169.         try:
  170.             parser.sequence2st(tree)
  171.         except parser.ParserError:
  172.             pass
  173.  
  174.         self.fail('did not detect invalid tree for %r' % label)
  175.  
  176.     
  177.     def test_junk(self):
  178.         self.check_bad_tree((1, 2, 3), '<junk>')
  179.  
  180.     
  181.     def test_illegal_yield_1(self):
  182.         tree = (257, (264, (285, (259, (1, 'def'), (1, 'f'), (260, (7, '('), (8, ')')), (11, ':'), (291, (4, ''), (5, ''), (264, (265, (266, (272, (275, (1, 'return'), (313, (292, (293, (294, (295, (297, (298, (299, (300, (301, (302, (303, (304, (305, (2, '1')))))))))))))))))), (264, (265, (266, (272, (276, (1, 'yield'), (313, (292, (293, (294, (295, (297, (298, (299, (300, (301, (302, (303, (304, (305, (2, '1')))))))))))))))))), (4, ''))), (6, ''))))), (4, ''), (0, ''))))
  183.         self.check_bad_tree(tree, 'def f():\n  return 1\n  yield 1')
  184.  
  185.     
  186.     def test_illegal_yield_2(self):
  187.         tree = (257, (264, (265, (266, (278, (1, 'from'), (281, (1, '__future__')), (1, 'import'), (279, (1, 'generators')))), (4, ''))), (264, (285, (259, (1, 'def'), (1, 'f'), (260, (7, '('), (8, ')')), (11, ':'), (291, (4, ''), (5, ''), (264, (265, (266, (272, (275, (1, 'return'), (313, (292, (293, (294, (295, (297, (298, (299, (300, (301, (302, (303, (304, (305, (2, '1')))))))))))))))))), (264, (265, (266, (272, (276, (1, 'yield'), (313, (292, (293, (294, (295, (297, (298, (299, (300, (301, (302, (303, (304, (305, (2, '1')))))))))))))))))), (4, ''))), (6, ''))))), (4, ''), (0, ''))))
  188.         self.check_bad_tree(tree, 'def f():\n  return 1\n  yield 1')
  189.  
  190.     
  191.     def test_print_chevron_comma(self):
  192.         tree = (257, (264, (265, (266, (268, (1, 'print'), (35, '>>'), (290, (291, (292, (293, (295, (296, (297, (298, (299, (300, (301, (302, (303, (1, 'fp')))))))))))))), (12, ','))), (4, ''))), (0, ''))
  193.         self.check_bad_tree(tree, 'print >>fp,')
  194.  
  195.     
  196.     def test_a_comma_comma_c(self):
  197.         tree = (258, (311, (290, (291, (292, (293, (295, (296, (297, (298, (299, (300, (301, (302, (303, (1, 'a')))))))))))))), (12, ','), (12, ','), (290, (291, (292, (293, (295, (296, (297, (298, (299, (300, (301, (302, (303, (1, 'c'))))))))))))))), (4, ''), (0, ''))
  198.         self.check_bad_tree(tree, 'a,,c')
  199.  
  200.     
  201.     def test_illegal_operator(self):
  202.         tree = (257, (264, (265, (266, (267, (312, (291, (292, (293, (294, (296, (297, (298, (299, (300, (301, (302, (303, (304, (1, 'a'))))))))))))))), (268, (37, '$=')), (312, (291, (292, (293, (294, (296, (297, (298, (299, (300, (301, (302, (303, (304, (1, 'b'))))))))))))))))), (4, ''))), (0, ''))
  203.         self.check_bad_tree(tree, 'a $= b')
  204.  
  205.     
  206.     def test_malformed_global(self):
  207.         tree = (257, (264, (265, (266, (282, (1, 'foo'))), (4, ''))), (4, ''), (0, ''))
  208.         self.check_bad_tree(tree, 'malformed global ast')
  209.  
  210.  
  211.  
  212. def test_main():
  213.     test_support.run_unittest(RoundtripLegalSyntaxTestCase, IllegalSyntaxTestCase)
  214.  
  215. if __name__ == '__main__':
  216.     test_main()
  217.  
  218.